hirax.net::Keywords::「apple][」のブログ



1999-12-30[n年前へ]

6502と並列計算とムーアの法則 

人間のクロック&スケールアップ


 「物理の散歩道」を読み直していると、とある文章に興味を覚えた。

  • 第五物理の散歩道 ロゲルギスト著 岩波新書
の中の「通信を考える」である。この本は、何度読み返しても新鮮である。

 「通信を考える」の中の興味を惹かれた部分は「信号の伝わる速度と距離と処理速度の関係」を論じている部分だ。例えば、計算機は処理速度を高めるためには回路の大きさを小さくしなければならないとか、人間の頭脳の働きの速さから集団生活の広がりの限界について論じているのだ。例えば、

  • 計算機の演算速度の時間スケール -> ナノ秒 = 10^-9s (クロックで考えると、1GHz)
  • 人間の演算速度の時間スケール -> サブ秒 = 10^-1s (クロックで考えると、10Hz)
ということから、計算機の大きさが0.12=1.2x10^-1m角として、地球の直径が12000km=1.2x10^7とすると、その空間スケールが先の時間スケールと同じ比すなわち10^8であると言及しているのだ。

 つまり、通信の速度が光速度であるとして、演算の単位クロックの間に通信が行われなければならないとするならば、計算機の時間・空間スケールと人間の時間・空間スケールは等しいだろう、という推論だ。
 
そして、さらにロゲルギストの想像は広がり、並列計算についても論じている。

 計算機が東京と大阪に離れて置かれていて、通信をしながら作業をするとしたら、人間の場合にはそれと同じ条件というのはどんなものだろうか、と彼らは考える。それは、光の速度で55時間、ちょうど冥王星の軌道直径の5倍程度の空間スケールになる、と論じている。それ以上、離れた場合には演算の過程を共に行うのは無理ではないかというのである。

 こういう文章を読んでいると、この文章が作られたのが30年以上前であることを忘れてしまいそうである。この人達の思索の自由さに憧れを感じてしまう。この人達は、頭の中にタイムマシンにでも持っているのだろうか、と感じてしまうのだ。

 ところで、私がコンピューターをいじるようになった頃は、Apple][の時代だった。といっても、私はお金があふれていたわけではないので、XXX電子でAplle][のコンパチ基盤を買って組み立てて使っていた。その基盤上の6502は1MHzで動いていた筈だ(あぁ、I/Oの6809派vs6502派の論争が懐かしい!)。

 それから20年程たち、CPUのクロックスピードは1GHzを越えようとしている。20年で1000倍である。そして、その集積度は、ムーア(GordonMoore)の法則の「半導体の性能と集積は、18ヶ月ごとに2倍になる」に従っている。

 それでは、人間はどうだろうか?人間の脳味噌のクロックがどの程度であるか測定されているかどうか、素人の私にはよくわからない。しかし、WEB上のデータとしては、例えば

というようなデータがある。ここでは、1演算/秒である。ロゲルギストの用いたものが10演算/秒である。これらは、かなり近い値と言える。もちろん、Mayoさんの演算速度はロゲルギストよりも一桁下であるわけだが、ロゲルギスト達と比べては可哀想というものだ。それに、おそらくMayoさんは謙遜しているのだと思われる。実はもう少し速いのだろう。それに比べて、私などは、二桁の演算(しかも足し算でも)になると1演算/秒もこなせるかどうか判らないくらいである。

 ロゲルギストの時代、すなわち30年以上前、から現在のMayo's Profileの値がほとんど変わっていないように、人間の演算スピードは変わるようなものではない。それは、そうだろう。ヒトのクロックスピードや集積度といったものは、変えるわけにはいかない。当然である。CPUと違ってプロセスルールを変化させるというような訳にはいかないのだ。

 それでは、演算性能を上げようとしたらどうするだろうか?そうなると、並列計算を行うのが自然だろう。単独のCPUの性能を上げるわけに行かなくても、共同作業を行えば、演算性能を上げることができる。

 現代はほとんどの作業が共同作業で行われる。また、その共同作業も大人数が関わるようになってきている。それは、どんな業種でも同じだ。一人では、なかなかできないことが多くなっている。
 それら共同作業、すなわち並列計算、を行う人達(例えれば並列計算機における各ノード)を増やし、それらの間の情報転送をすばやく行うことが多くの作業(計算)を行うための手順だろう。

 そこで、

で用いた
  • 人口増加( http://www.t3.rim.or.jp/~kabutoya/KABHTML/Yoi/2-1.html )
のデータをもう一度眺めてみることにしよう。

最近500年間の人口の変化

 なるほど、人間界の並列計算機におけるノード数は増加している。そして、各ノード間の通信速度を調べるために、まずは、

などの情報から、適当な通信の歴史を調べてみる。
西暦 内容
-4000 のろし
-2400 伝書鳩
-2300 馬による伝令制度
1837 モールス電信機
1876 ベグラハム=ベル電話機
1909 グリエルモ=マルコーン無線電話機
1973 Ethernet XeroxPARCで生まれる。(ちなみにEther=エーテル)
1979 DIX規格=10Mbps
1992 FastEthernet=100Mbps
 これを全部転送速度に直してみる。といっても、よくわからない部分も多いので、私が適当に決めてみる。それでは、その変化を示してみよう。とりあえず、ここ200年位の間のものを考える。
西暦 内容
1837 モールス電信機 = 2bps
1909 グリエルモ=マルコーン無線電話機=10kbps
1979 DIX規格=10Mbps
1992 FastEthernet=100Mbps
 という感じだ。グラフにすると、
最近200年間の情報伝送速度の変化

こんな感じである。対数グラフにおいて直線的に情報伝送速度が速くなっている。この関係は結構きれいである。
 別に意図してこういう数字にした訳ではないのだが、不思議なことである。
 このようにして、人間(ノード)間の転送レートが高くなることにより、先のような人口増加に伴うトラフィック増加をしのぐことができていると考えることもできるかもしれない。そして、人間達の共同作業、すなわち並列計算、を行うだけのバススピードを確保しているのである。

 最近、会社組織などで分社化とか事業分割とかの話題をよく耳にする。こういった時に、分割における時間と空間のスケールはよく考える必要があるだろう。分割が有効なのは、ほとんど独立なものを分割する場合のみである。並列計算における領域分割などと同じだ。

 共同作業がほとんどなく、結果のみをやりとりすれば良いような場合には分割による効果はあるだろう。その一方で、同じ事業・作業を行っているところが、離れていては作業の効率は上がらない。もし、技術系の会社でそのようなことを行うのであれば、事業や部署を並列化した際の真面目なシミュレーション位は行うべきだろう。いや、別に深い意図はないけど。

 こういったことは「新・闘わないプログラマ No.109 時代錯誤」に書かれていることとも少し似ているような気がする。

 さて、1999/12/30-2000/1/1は野沢温泉で温泉&スキーである。2000年問題で会社に泊まり込む人も多いが、私はスキー場で泊まり込みである。同時期に野沢温泉に行く人がいるならば、ぜひ一緒に「スキー場の特殊相対性理論」について討論したいと思う(スキー場で)。

2006-10-09[n年前へ]

「オッパイ星人」だって、ハッカーになりたい……!? 

■  「ハッカー」でない私ですが…

 高校時代の同級生だった川合史朗さんからバトンが回ってきましたが、私は「ハッカー」ではありません。コンピュータを使い出したのは'80年くらい*1でしたから、コンピュータ歴だけは長いことになります。けれど、プログラミングをしていたと言えるのは、地震予知のための計測システム開発*2のためにCで岩盤変形のシミュレーション・プログラム*3を組んでいた大学院時代だけで、「ハッカー」の「ハ」の字も知らないうちに現在に至ってしまいました。たまに、遊びで小さなプログラムを作ることもありますが、アイデア一発型のネタばかり*4で作った後はいつも放置してしまう…という情けない状態です…。
 そんな私ですが、スイカに塩を振りかければより甘くなる、という例もあります。ハッカー猛者の方々に「ハッカーになれなかった人」が混じってみるのもちょっと面白いかもしれない*5と期待し、ハッカーの気持ちを適当に想像(妄想)しながら*6、思いついたことを書いてみます。

*1 あまり表だっては言いづらいのですが、秋葉原でapple][ コンパチの部品を買って組み立て使っていた世代です…。

*2 この研究を数年後に引き継いでいたのが「スーパー・ハッカー」近藤淳也 はてな社長です。私とはまさに天と地ほどの差がある方です…。

*3 そのときに使った参考書が「C言語による有限要素法入門」著者は(今ではベストセラー推理小説を量産する作家として有名になってしまった)森博嗣氏です。

*4 日本語変換のATOKにPerl・Ruby・Cなどで各種拡張機能をさせるプログラムとか、ノートPC内蔵の加速度センサを利用して立体ディスプレイモドキを実現するソフトとか…。

*5 なにしろ、川合さんが私にバトンを放り投げた理由も「見慣れた面子ばかりだと面白くないので、趣向を変えて(ハッカーというわけではないが)平林さんを」なのですから… _|‾|○

*6 2006年3月号で高林 哲氏がハッカーの習性として書かれていたハッカー精神「深追い、佳境、バッドノウハウ」と共通することもあるかもしれません→「オッパイ星人とバッドノウハウ」を参考に。

■ 「自分のための勉強」を楽しくやろう

 就職して数年した頃、「自分の知識・技術を向上させる機会」や「考えたことを残しておく場所」がほとんどないことに気づきました。そこで、自分が知りたいことを定期的に学び・考えてみることにしたわけです。そして、その「学び・考えた」結果を残しておく場として作ったのが、"hirax.net"です。ですから、サイト"hirax.net"というのは私にとって「自分のための勉強ノート」です。

 当初、この「自分のための勉強ノート」は勤務先のイントラ内サイトとして作りました。しかし、企業内インフラの利用制限が厳しくなってきたこともあり、'98年頃に勤務先のイントラ内部から外のインターネットの世界に引っ越して、現在の"hirax.net"になりました。また、それと同時に「自分のための勉強ノート」の内容を「役に立たない(ように見える)こと」に変えました。それは、「書く内容を業務から離れたものにする」ためです。企業内で研究開発という仕事をしていると、やはり業務内容に近いことを考えていることが多いわけですが、そういう内容を外で公開するわけにはいきません。そこで、(勤める会社のためでなく)自分自身のために「高度な技術」を勉強するけれど、その技術を適用して考えてみる対象・内容は「実利的には何の役にも立たないこと」にしよう、と決めたわけです。

 その結果、流体力学のナヴィエ・ストークスの方程式の解法プログラムの勉強をするけれど、その計算対象は「スクール水着の周りの水の動き」であったり…、有限要素法のプログラムを勉強はするけれど、その解析対象は「女性のバスト」であったり「男性のアレ」だったり、ということになってしまいました…。つまりは、それが、"hirax.net"の「高度な技術を無駄に使う」というスタイルです。そういうスタイルにしたことで、「自分の勉強」を楽しくやることができました。何しろ、難解な流体力学の教科書も(女性のバストと同じような感覚を空気抵抗で再現することができると想像すると)ワクワクする気持ちで読むことができますし、行列計算プログラムを作る作業も(女性のバストの変形を計算できると思えば)素晴らしく楽しい作業に変わるのですから*7

*7 男とはそういうものです(女性読者の方々へ)。なお、女性のためには、科学の粋を凝らした「豊胸ブラジャー」「美人化ソフト」も用意しています。

■ 「やりたいこと」はやってみないとわからない

 「自分のための勉強ノート」ですから、いつでも私は「自分がやりたい」勉強をしていました、と言いたいところですが、そういうわけではありませんでした。なぜかと言うと、「自分のやりたいこと(勉強したいこと)」はこれだ、と自分でハッキリわかっていなかったからです。「(自分がやりたい)何か一つのこと」がよくわからないまま、「ずっと、その場その場で気になったことを勉強して(遊んで)きた」感じでした。その瞬間その瞬間の好奇心の赴くままに、目の前の謎・パズルを(その秘密を解くことができそうな科学技術を勉強しつつ)、楽しみながら考え続けるということを長く続けているうちに、自分のやりたいこと、「楽しくなる科学技術」という方向性*8がようやく見えてきたというのが本当のところです*9

 「やりたいこと」をいきなり思いつき、一晩ノリノリ体力バリバリにプログラミングをして、それを作り出すことができるスーパー「ハッカー」も世の中にはいるだろうと思いますが、私のように、「自分のしたいこと」を自分自身でもよくわからないという方も多いと思います*10。そんな人(時)は、とりあえず何でもいいから続けてみるのもコツだったりするのかもしれません。そうすれば、「将来長い時間をかけて自分がやりたいこと」も浮かび上がってくるだろうし、そういった「将来・現在やりたいこと」が「これまでにやったこと」と繋がってくること*11も多いと思うのです。

*8 Tech総研の編集者いわく「平林さんのやりたいことは、科学技術と男と女ですね、」だそうですから。

*9 「数字がバラバラに書いてあって、その数字を順番になぞっていくと最後に絵が浮かび上がるパズル」みたいなものですね。

*10 川合史朗さんが訳されたPaul Grahamの「知っておきたかったこと」には、若い人がやりたいことを見つけるにはどうしたら良いかが書かれています。

*11 自分用のプログラム・ライブラリを作っていくと、作業が楽になるようなものです。

■ 「長く続ける」コツ

 「とりあえず何でもいいから続けてみる」と書きましたが、「続けるということ」は実は難しいことだろう、と思います。(飽きっぽさでは天下一品の)私が比較的長く続けることができた理由の一つは、「その瞬間その瞬間の好奇心の赴くまま」=「いつでも、その瞬間に好きなことを楽しんでいた」からだったと思います。だから、飽きることなく(内容は実は変わっているわけですから)続けることができたわけです。

 「自分の好きなことをする」と長く続けることができると思うのですが、そのためには「自分の好きなことを見失わないようにする」ことが必要です。そして、「自分の好きなことを見失わないようにする」ためには、「他人の感想を(あんまり)気にしない」ということが一番です。一回、自分のイメージをどん底まで突き落としてみるのも良いかもしれません*12

 自分が「これは凄い!」と思うことが、他の人にとっては「これ、何だか全然面白くないなぁ…」と感じられることはよくある話です。人それぞれ、好みも背景も色々なことが違うのですから、それは当然です。「ただ一つの正解があるようなこと」を追求したいなら別だと思うのですが、そうでない「自分の好みを追求」しようとするならば「他人を参考にして学ぶのは良いけれど、あんまり他人の感想は気にしない」ということが結構良いような気がします。他人の感想を気にしすぎると否定的な感想に凹んでしまうこともありますし、他人の期待に沿ってやることを変えていってしまうと、いつの間にか「自分の好きでないあたり」まで流れていってしまうことも多いと思います。

*12 私の場合、「オッパイ大好きな変態じゃないの?」というような感想を言われまくりで、自分のプライドなんかどっか遠くに消えていってしまいました。その結果、他の人の感想(的確な指摘とも言う)を気にしないというワザが使えるようになったのです…。

■ やっぱり他の人に伝えたいから「わかりやすく」

 他人は自分とは違うものですから、他の人をあまり気にしないようにしたいと思ってはいます。それでも、やっぱり「自分が楽しいと思うことを他の人に伝えたい」とも思っています。自分が面白いと思うことを見つけた時、それに共感してくれる人がいたらうれしいものです。他の人を過剰に気にしないようにした方がいいとは思う一方で、「自分の考えたこと・感じたことを他の人に伝え」「自分の作ったものを公開する」上で「他の人にもわかりやすく・他の人が眺めやすい」ようにしようという試行錯誤は続けていこうと思っています*13

*13 そんな「他の人に伝える」ための試行錯誤の結果、面白く人にわかりやすくプレゼンテーションをするにはどうしたら良いか?という書籍「理系のためのプレゼンのアイデア」を技術評論社から11月に刊行予定です

■ 「バトン」が次に飛ぶ先は…?

 さて、次回へのバトンは増井俊之さんに渡そうと思います。「わかりやすさ」「スーパー・ハック」を華麗に両立させている増井さんの秘密を伺ってみたいと思います。

2008-11-01[n年前へ]

疑似VGAはApple-][を思い出す 

 疑似VGAはApple-][を思い出す

 このような、つまりハニカムCCDやサムスンのVisual WVGA方式でも人間の目の誤魔化しやすい動画であれば殆ど問題はないと思う。しかしフォントなどだと、色がにじんで見えたりバックの色とフォントの色によってはエッジがおかしな色になるなどもある。

2012-09-07[n年前へ]

「田舎と都会の電力事情と飲食店・風俗店の境界」や「apple][のビデオ回路」など 

 9月7日の「n年前へ」から。

 「飲食店・風俗店の境界と田舎・都会の境界」に関する議論がエンエンに続く参議院地方行政委員会。高田なほ子君と政府委員(原文兵衞君)のエンエンと続く会話はまさに喜劇。

「飲食店と風俗店、境界と田舎と都会」の境界線をルクスで計る(2004年)
 apple][の回路は、14.32MHzのオシレータ出力を2分周した7.12MHzの信号がビデオ信号のドット・クロックとなる。(基本的には)1ドットが1bitの単純な構成だ。NTSCのビデオ信号のカラー情報は「ビデオ信号に重畳した3.58MHz波形」の位相で表すが、この3.58MHzはappleのビデオ・クロック(7.12MHz)のちょうど2倍である。ということは、2ドット分のビデオ・信号を"on""off"として出力した場合と、"off""on"して出力した場合では、NTSC信号でのカラー情報(位相)が180度ずれたもの(=補色)を表すことができる。

 さらに、(ある時期以降の)appleの場合ビデオ・データの特定の(=横7ドット, 縦8ドットのテキストモードとの兼ね合いで使われていなかった最上位の)bitを立てると、フリップフロップ回路で70nsだけ信号を送らすことができる。その70nsのずれは、NTSCのカラー信号3.58MHzのドット・クロック幅の25%に相当する(角度で言うと90度)。ということは、NTSC信号でのカラー情報(位相)が0, 180度の色だけでなく、90, 270度の色も出力(疑似生成)することができるようになる。すなわち、黒・白・紫・緑に加えて青・橙という計6色が出力することができるようになる。

appleのビデオ機能(2005年)
 飛び乗った東急東横線 各駅列車車両を隅から隅まで眺め、一体スピーカーがどこにあるのかを確認してみました。確認した結果の図、車両のどこに車内放送用スピーカーがあるかを描いてみたのが下の図です。この図を描いてみて、「私は列車の中で隅っこの席に好んで座っていたけれど、そんな”隅っこの席”14/16=87.5パーセントの確率で間近にスピーカーがあったのだ!」ということに気づきました。隅っこの席には、(今日、確認した東急東横線の車両では)非常に高い確率で「真上・正面・すぐ横」のいずれかにスピーカーがあったのです。

「うるさい電車の車内放送」を避けるためのテクニック(2011年)



■Powered by yagm.net